-- +goose Up
-- +goose StatementBegin
create table if not exists usermoneytransactions
(
    id          integer generated by default as identity primary key,
    user_id     integer     not null references users (id) on delete cascade,
    category_id integer     not null references usercategories (id) on delete cascade,
    period      timestamptz not null,
    sum         integer     not null -- (сумма в копейках)
    );

comment on table usermoneytransactions is 'Записи пользователей о расходах';

-- Индекс по пользователю и времени операции для ускорения поиска записей за определенный период.
create index if not exists usermoneytransactions_user_id_period
    on usermoneytransactions (user_id, period);
-- +goose StatementEnd

-- +goose Down
-- +goose StatementBegin
drop index usermoneytransactions_user_id_period;
DROP TABLE IF EXISTS "usermoneytransactions";
-- +goose StatementEnd